Skip to content

[v3-2-test] Breeze: ensure generated Dockerfile.pmc upgrades uv to the required floor (#65774)#65829

Merged
potiuk merged 1 commit into
v3-2-testfrom
backport-0df38ff-v3-2-test
Apr 26, 2026
Merged

[v3-2-test] Breeze: ensure generated Dockerfile.pmc upgrades uv to the required floor (#65774)#65829
potiuk merged 1 commit into
v3-2-testfrom
backport-0df38ff-v3-2-test

Conversation

@github-actions
Copy link
Copy Markdown
Contributor

breeze release-management check-release-files providers generates a
Dockerfile.pmc that copies the root pyproject.toml into the CI image
and then runs uv pip install. If the CI image ships an older uv than
[tool.uv] required-version, that install step fails with:

error: Required uv version `>=X.Y.Z` does not match the running
version `A.B.C`. Update `uv` by running `uv self update`.

This is reproducible today: the current ghcr.io/apache/airflow/main/ci/ python3.10 ships uv 0.11.6 while the pin is >=0.11.7, so every PMC
Dockerfile.pmc verification breaks out of the box.

Inject a pip install --upgrade 'uv>=X.Y.Z' before the uv pip install
step so the install works regardless of when the CI image was last
rebuilt. The floor is a module constant with the existing
# sync-uv-min-version marker so the sync-uv-min-version-markers prek
hook keeps it in lockstep with the [tool.uv] required-version bump
going forward — drop check_release_files.py into that hook's file
list and add a belt-and-braces test that the two values match.
(cherry picked from commit 0df38ff)

Co-authored-by: Jarek Potiuk jarek@potiuk.com

…e required floor (#65774)

`breeze release-management check-release-files providers` generates a
Dockerfile.pmc that copies the root `pyproject.toml` into the CI image
and then runs `uv pip install`. If the CI image ships an older uv than
`[tool.uv] required-version`, that install step fails with:

    error: Required uv version `>=X.Y.Z` does not match the running
    version `A.B.C`. Update `uv` by running `uv self update`.

This is reproducible today: the current `ghcr.io/apache/airflow/main/ci/
python3.10` ships uv 0.11.6 while the pin is `>=0.11.7`, so every PMC
Dockerfile.pmc verification breaks out of the box.

Inject a `pip install --upgrade 'uv>=X.Y.Z'` before the `uv pip install`
step so the install works regardless of when the CI image was last
rebuilt. The floor is a module constant with the existing
`# sync-uv-min-version` marker so the `sync-uv-min-version-markers` prek
hook keeps it in lockstep with the `[tool.uv] required-version` bump
going forward — drop `check_release_files.py` into that hook's file
list and add a belt-and-braces test that the two values match.
(cherry picked from commit 0df38ff)

Co-authored-by: Jarek Potiuk <jarek@potiuk.com>
@potiuk potiuk force-pushed the backport-0df38ff-v3-2-test branch from e4c127a to 2f48d99 Compare April 26, 2026 21:43
@potiuk potiuk merged commit d9e59f0 into v3-2-test Apr 26, 2026
86 checks passed
@potiuk potiuk deleted the backport-0df38ff-v3-2-test branch April 26, 2026 22:26
vatsrahul1001 pushed a commit that referenced this pull request Apr 27, 2026
…e required floor (#65774) (#65829)

`breeze release-management check-release-files providers` generates a
Dockerfile.pmc that copies the root `pyproject.toml` into the CI image
and then runs `uv pip install`. If the CI image ships an older uv than
`[tool.uv] required-version`, that install step fails with:

    error: Required uv version `>=X.Y.Z` does not match the running
    version `A.B.C`. Update `uv` by running `uv self update`.

This is reproducible today: the current `ghcr.io/apache/airflow/main/ci/
python3.10` ships uv 0.11.6 while the pin is `>=0.11.7`, so every PMC
Dockerfile.pmc verification breaks out of the box.

Inject a `pip install --upgrade 'uv>=X.Y.Z'` before the `uv pip install`
step so the install works regardless of when the CI image was last
rebuilt. The floor is a module constant with the existing
`# sync-uv-min-version` marker so the `sync-uv-min-version-markers` prek
hook keeps it in lockstep with the `[tool.uv] required-version` bump
going forward — drop `check_release_files.py` into that hook's file
list and add a belt-and-braces test that the two values match.
(cherry picked from commit 0df38ff)

Co-authored-by: Jarek Potiuk <jarek@potiuk.com>
@vatsrahul1001 vatsrahul1001 added the changelog:skip Changes that should be skipped from the changelog (CI, tests, etc..) label May 18, 2026
@vatsrahul1001 vatsrahul1001 added this to the Airflow 3.2.2 milestone May 18, 2026
vatsrahul1001 pushed a commit that referenced this pull request May 20, 2026
…e required floor (#65774) (#65829)

`breeze release-management check-release-files providers` generates a
Dockerfile.pmc that copies the root `pyproject.toml` into the CI image
and then runs `uv pip install`. If the CI image ships an older uv than
`[tool.uv] required-version`, that install step fails with:

    error: Required uv version `>=X.Y.Z` does not match the running
    version `A.B.C`. Update `uv` by running `uv self update`.

This is reproducible today: the current `ghcr.io/apache/airflow/main/ci/
python3.10` ships uv 0.11.6 while the pin is `>=0.11.7`, so every PMC
Dockerfile.pmc verification breaks out of the box.

Inject a `pip install --upgrade 'uv>=X.Y.Z'` before the `uv pip install`
step so the install works regardless of when the CI image was last
rebuilt. The floor is a module constant with the existing
`# sync-uv-min-version` marker so the `sync-uv-min-version-markers` prek
hook keeps it in lockstep with the `[tool.uv] required-version` bump
going forward — drop `check_release_files.py` into that hook's file
list and add a belt-and-braces test that the two values match.
(cherry picked from commit 0df38ff)

Co-authored-by: Jarek Potiuk <jarek@potiuk.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:dev-tools changelog:skip Changes that should be skipped from the changelog (CI, tests, etc..)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants